package com.eg366.nioLearn.baseSocket.chapter03;

/**
 * 【原码】：将最高位作为符号位（以0代表正，1代表负），其余各位代表数值本身的绝对值（以二进制表示）。
 * 这个时候有一个问题：表示0的时候正0和负0表示并不一样，所以在计算机中没有采用原码的表示形式。 
 * 对于一个字节byte（8位），最大值01111111（最高位为符号位）:2的7次方-1=127
 * 
 * 【反码】：一个数如果为正，则它的反码与原码相同；一个数如果为负，则符号位为1，其余各位是对原码取反。
 * 问题和上面一样的。所以，计算机中也没有采用反码来表示数字。
 * 
 * 【补码】：一个数如果为正，则它的原码、反码、补码相同；一个数如果为负，则符号位为1，其余各位是对原码取反，然后再加1。
 * 也就是通过将与其对应的正数的二进制代码取反（即将1变成0，将0变成1），然后对其结果加1
 * 
 */
public class Test01 {
	public static void main(String[] args) {
//		int a = 4;
//		System.out.println(new Integer(a).byteValue());
//		System.out.println(16 << 1);
//		System.out.println(Integer.toBinaryString(-a));
//		System.out.println(Integer.toBinaryString(0xFF));
		
		byte mb = 127;
		byte[] ba = new byte[Byte.SIZE];
		System.out.println(ba.length);
		System.out.println(mb);
		char c = 97;
		System.out.println(c);
		byte[] tb = "Test!".getBytes();
		System.out.println(mb = -1);
		
		System.out.println("1a张".getBytes().length);
	}
}
